
var sysComm = {
    appId: 'wx3a78a01c1c4e46da',//微信公众号AppId
    clientType: 'WEB'//客户端类型
};

//阿里云测试环境，别删
var wxcarbaseUrl ='http://weixin.chifengsx.cn/';// url公用地址

var dataUrl = dataUrl || {};
dataUrl.util  = {

    //根据类型查询出发地、目的地
    queryCarCityByType: function () {
        return wxcarbaseUrl + 'wx/carCity/queryCarCityByType';
    },
    //预约信息保存
    saveTCarSubscribe:function(){
        return wxcarbaseUrl + 'wx/carSubscribe/saveTCarSubscribe';
    },
    //获取用户openId
    greetUserOpenId:function(openId){
        return wxcarbaseUrl + 'wx/redirect/'+openId+'/getUserOpenId';
    },
    //分页查询预约信息
    querySubscribeInfos:function(){
        return wxcarbaseUrl + "wx/carSubscribe/querySubscribeInfos";
    },
    //管理员登录
    adminLogin:function(){
        return wxcarbaseUrl + "wx/admin/login";
    },
    //管理员分页查询预约信息
    queryAdminSubscribeInfos:function(){
        return wxcarbaseUrl + "wx/admin/carSubscribe/querySubscribeInfos";
    },
    //管理员变更状态
    updateSubscribeState:function(){
        return wxcarbaseUrl +'wx/admin/carSubscribe/updateSubscribeState';
    }





};

var commonObj={
    /**
     * 根据类型查询出发地、目的地
     * @param type 1:出发地:2:目的地
     */
    queryCarCityByType:function(type,callback){
        var req={
            type:type
        };
        var opts = {
            method:'post',
            url: dataUrl.util.queryCarCityByType(),
            data: JSON.stringify(req),
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function(res) {
                callback(res);

            }
        };
        sysAjax(opts);

    },
    /**
     *获取openId
     */
    getOpenId:function(code){
        var openId="oLJDZ5tT-VyXQV5yAjIJOasDJQDw";
        var opts = {
            method:'post',
            url: dataUrl.util.greetUserOpenId(sysComm.appId),
            data: {appid:sysComm.appId,code:code},
            async:false,
            contentType: 'application/x-www-form-urlencoded; charset=utf-8',
            dataType: 'json',
            success: function(res) {
                console.debug("获取openId="+res);
                if(res.code =='8888'){
                    openId = res.data;
                }
            }
        };
        sysAjax(opts);
        return openId;
    }
};

//获取url中的参数
function getUrlParam(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
    var r = window.location.search.substr(1).match(reg);  //匹配目标参数
    if (r != null) return unescape(r[2]); return null; //返回参数值
}

function sysAjax(opts) {

    //一.设置默认参数
    var defaults = {
        method: 'GET',
        url: '',
        dataType: 'json',
        data: '',
        async: true,
        cache: false,
        processData:true,
        contentType: 'application/json; charset=utf-8',
        success: function () {
        },
        error: function () {
        }
    };


    //二.用户参数覆盖默认参数
    for (var key in opts) {
        defaults[key] = opts[key];
    }
    // console.log("请求相关参数：");
    // console.log(defaults)
    $.ajax({
        type: defaults.method,
        url: defaults.url,
        dataType: defaults.dataType,
        contentType: defaults.contentType,
        data: defaults.data,
        async: false,
        processData:defaults.processData,
        beforeSend: function (xhr) {
            //设置请求头
            //xhr.setRequestHeader("User-Agent", "headertest");
            //console.log(JSON.stringify(sysComm));
            //xhr.setRequestHeader("x-auth-token", fn.getToken());
        },
        success: function (res, status, xhr) {
            //授权令牌不存在或已失效
            if(res.code == 2003){
                //跳转到登录界面
                window.location = 'login.html';
                return;
            }
            defaults.success(res, status, xhr);

        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            if (textStatus == "timeout") {
                //alert('请求超时，请重试');
            } else {
                //alert("请求报错")
                console.log(errorThrown);
            }

        }
    });
};



function ajaxCommon(opts) {
    //一.设置默认参数
    var defaults = {
        method: 'GET',
        url: '',
        data: '',
        async: true,
        cache: false,
        contentType: 'application/json; charset=utf-8',
        beforeSend: function (xhr) {
            //设置请求头
            //xhr.setRequestHeader("User-Agent", "headertest");
            //console.log(JSON.stringify(sysComm));
            xhr.setRequestHeader("x-auth-token", fn.getToken());
        },
        success: function () {
        },
        error: function () {
        }
    };

    //二.用户参数覆盖默认参数
    for (var key in opts) {
        defaults[key] = opts[key];
    }

    defaults.method = defaults.method.toUpperCase();    //处理 method

    //三.对数据进行处理
    //如果数据是对象，并且 方法为 get方法时，将data拼接到url后面
    if (typeof defaults.data === 'object' && defaults.method === 'GET') {    //处理 data
        var str = '';
        for (var key in defaults.data) {
            str += key + '=' + defaults.data[key] + '&';
        }
        defaults.data = str.substring(0, str.length - 1);
    }

    defaults.cache = defaults.cache ? '' : '&' + new Date().getTime();//处理 cache

    if (defaults.method === 'GET' && (defaults.data || defaults.cache)) defaults.url += '?' + defaults.data + defaults.cache;    //处理 url

    //四.开始编写ajax
    //1.创建ajax对象
    var oXhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
    //2.和服务器建立联系，告诉服务器你要取什么文件
    oXhr.open(defaults.method, defaults.url, defaults.async);
    //3.发送请求
    if (defaults.method === 'GET')
        oXhr.send(null);
    else {
        oXhr.setRequestHeader("Content-type", defaults.contentType);
        oXhr.send(defaults.data);
    }
    //4.等待服务器回应
    oXhr.onreadystatechange = function () {
        if (oXhr.readyState === 4) {
            if (oXhr.status === 200)
                defaults.success.call(oXhr, oXhr.responseText);
            else {
                defaults.error();
            }
        }
    };
}





